<?php


?>

<style>
    #fileUpload-cont {
        position: fixed;
        top:-1000px;
        left:-1000px;
        z-index: 10000;
        opacity: .1;
    }
    #fileUploadForm {z-index: 10000;}
</style>

<div id="fileUpload-cont" >
    <form name="fileUploadForm" id="fileUploadForm" action="#" method="POST" enctype="multipart/form-data"></form>
</div>

<script type="text/javascript" src="<?php echo APP_HTML_JS_PATH; ?>ajaxfileupload.js"></script>
<script type="text/javascript">


function fileUpload() {
    $.ajaxFileUpload({
        url:            Elm.fileUploadForm.callbackData.url+'?t='+Math.random(),
        secureuri:      false,
        fileElementId:  Elm.fileUploadInput.attr('id'),
        dataType:       'json',
        data:           Elm.fileUploadForm.callbackData.data,

        success: function(retdata) {
            if (typeof(Elm.fileUploadForm.callbackData.onSuccess) == 'function') {
                Elm.fileUploadForm.callbackData.onSuccess(retdata);
            }
            Elm.fileUploadForm.callbackData = {};  
        },
        
        error: function() {
            if (typeof(Elm.fileUploadForm.callbackData.onError) == 'function') {
                Elm.fileUploadForm.callbackData.onError();
            }
            Elm.fileUploadForm.callbackData = {};  
        }
    });
}

/**
* Вызов диалога загрузки файла
* 
* @param url        string  имя страницы, принимающей данные (относительный или абсолютный путь)
* @param data       object  передаваемые с файлом параметры (не забыть action!)
* @param onSuccess  function выполняется в случае успешной передачи данных
* @param onError    function выполняется в случае ошибки
*/
function fileUploadDialogOpen (url, data, onSuccess, onError) {
    url = url || '';
    data = data || {};

    onSuccess = onSuccess || false;
    onError = onError || false;
    
    
    Elm.fileUploadForm.callbackData = {
        url: url, 
        data: data, 
        onSuccess: onSuccess, 
        onError: onError
    }; 
    
    // Танцы с бубном для фаерфокса
    Elm.fileUpload.css({top:'1px', left:'1px'});
    moveFileUploadFormUp();
    $('#fileUploadImage').remove();
    //Elm.fileUploadForm[0].elements['user_image'].value = null;
    Elm.fileUploadForm.find('<input>').remove();
    Elm.fileUploadInput = $('<input id="fileUploadImage" type="file" name="user_image">').appendTo(Elm.fileUploadForm);
    Elm.fileUploadInput.change(function(){ fileUpload(); });
    Elm.fileUploadInput.val(null).click();
    Elm.fileUpload.css({top:'-1000px', left:'-1000px'});
}

function moveFileUploadFormUp() {
    Elm.fileUpload.css('z-index', Elm.fileUpload.css('z-index')*1+20002).appendTo('body');
}


$(function() {
    Elm.fileUpload = $('#fileUpload-cont');
    Elm.fileUploadForm = $('#fileUploadForm');
    Elm.fileUploadInput = false;//$('#fileUploadImage');
    
    Elm.fileUploadForm.callbackData = {};  
    
    //Elm.fileUploadInput.click(function(){ alert('clicked'); });
    
    moveFileUploadFormUp();
});


</script>

<?php  /*
Вызов диалога загрузки файла (JS): 

fileUploadDialogOpen (url, data, onSuccess, onError);


* @param url        string  имя страницы, принимающей данные (относительный или абсолютный путь)
* @param data       object  передаваемые с файлом параметры (не забыть action!)
* @param onSuccess  function выполняется в случае успешной передачи данных
* @param onError    function выполняется в случае ошибки
 */ ?>